package com.udi.project.business.base.service;

import com.udi.project.business.base.domain.FlCode;
import com.udi.project.business.base.domain.Ttree;
import com.udi.project.system.dept.domain.Dept;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface FlCodeService {

    List<FlCode> selectFlCodeList(FlCode flCode);

    FlCode selectflCodeById(Integer Id);


    /**
     * 查询分类编码管理树
     *
     * @param flCode 分类编码信息
     * @return 所有分类编码信息
     */
    public List<Ttree> selecflCodeTree(FlCode flCode);

    /**
     * 查询分类编码管理树（排除下级）
     *
     * @param flCode 分类编码信息
     * @return 所有分类编码信息
     */
    public List<Ttree> selecflCodeTreeExcludeChild(FlCode flCode);

    /**
     * 新增保存分类编码信息
     *
     * @param flCode 分类编码信息
     * @return 结果
     */
    public int insertFlCode(FlCode flCode);

    /**
     * 修改保存分类编码信息
     *
     * @param flCode 分类编码信息
     * @return 结果
     */
    public int updateFlcode(FlCode flCode);
    /**
     * 校验分类编码名称是否唯一
     *
     * @param flCode 分类编码信息
     * @return 结果
     */
    public String checkflNameUnique(FlCode flCode);

    /**
     * 删除分类编码管理信息
     *
     * @param flId 分类编码ID
     * @return 结果
     */
    public int deleteFlCodeById(Integer flId);
    
    /**
     * 查询子节点
     *
     * @param parentId 父ID
     * @return 结果
     */
    public int selectFlCodeCount(Integer parentId);


    /**
     * 根据ID查询所有子分类编码（正常状态）
     *
     * @param flId 分类编码ID
     * @return 子分类编码数
     */
    public Integer selectNormalChildrenFlcodeById(Integer flId);
}
